package main

import (
	"fmt"
)

func main() {
	person := newPerson("张胜豪", "男", 18)
	person.doDream()
	fmt.Println(person)
	person.setAge(22)
	fmt.Println(person)

}

// 定义一个struct
type Person struct {
	name string
	sex  string
	age  int
}

// 构造函数
func newPerson(name, sex string, age int) *Person {
	return &Person{name, sex, age}
}

// 创建一个此struct内部的方法
func (p Person) doDream() {
	fmt.Printf("%s的梦想是学好go语言 \n", p.name)
}

// 创建一个指针接收者方法
func (p *Person) setAge(newAge int) {
	p.age = newAge
}
